/**
@brief Module CaseTerrain:<br>
Header contenant toutes les les variables et fonctions relatives aux cases d'une Carte
@author Dahan Geslain , Damien Chay
@file caseTerrain.h
@version 1.0
@date 23/10/2012
*/

#ifndef CASE
#define CASE

/**
\struct CaseTerrain
\brief Module des cases du terrain
*/
struct CaseTerrain
{

    unsigned int terrain; /**< @brief Indice [0,255] representant un terrain*/
    unsigned int decor;/**< @brief Indice[0,255] representant un decor*/
    bool collision; /**< @brief Variable indicant si il y a un decor physique contre lequel le joueur va se heurter*/
};


void setTerrain(CaseTerrain *CaseT,unsigned int NTerrain);/**< @brief Mutateur*/
void setDecor(CaseTerrain *CaseT,unsigned int NDecor);/**< @brief Mutateur*/
void setCollision(CaseTerrain *CaseT,bool NCollision);/**< @brief Mutateur*/

unsigned int getTerrain(const CaseTerrain *CaseT);/**< @brief Accesseur*/
unsigned int getDecor(const CaseTerrain *CaseT);/**< @brief Accesseur*/
bool getCollision(const CaseTerrain *CaseT);/**< @brief Accesseur*/

/**
@brief Initialisation d'un case avec tout les attributs a 0
@param [in,out] CaseT
@return none
*/
void InitCase(CaseTerrain *CaseT);

/**
@brief Initialisation d'un case avec les parametres en entree
@param [in,out] CaseT
@param [in] NTerrain
@param [in] NDecor
@param [in] NCollision
@return none
*/

void InitCase(CaseTerrain *CaseT,unsigned char NTerrain ,unsigned char NDecor ,bool NCollision);

#endif
